Initial implementation of GSK rendering pipeline
authorEmmanuele Bassi <ebassi@gnome.org>
Thu, 17 Mar 2016 13:48:19 +0000 (13:48 +0000)
committerEmmanuele Bassi <ebassi@gnome.org>
Tue, 18 Oct 2016 10:29:34 +0000 (11:29 +0100)
commit7afdd3fdb5c5fda9da87555b40a61e6a321c2414
treedf0af389900df9bf676695f95925dce9e8239d9d
parentd519e4aafe325106f6a5f2139921bf246cb4848d
Initial implementation of GSK rendering pipeline

GSK is conceptually split into two scene graphs:

 * a simple rendering tree of operations
 * a complex set of logical layers

The latter is built on the former, and adds convenience and high level
API for application developers.

The lower layer, though, is what gets transformed into the rendering
pipeline, as it's simple and thus can be transformed into appropriate
rendering commands with minimal state changes.

The lower layer is also suitable for reuse from more complex higher
layers, like the CSS machinery in GTK, without necessarily port those
layers to the GSK high level API.

This lower layer is based on GskRenderNode instances, which represent
the tree of rendering operations; and a GskRenderer instance, which
takes the render nodes and submits them (after potentially reordering
and transforming them to a more appropriate representation) to the
underlying graphic system.
26 files changed:
gsk/Makefile.am
gsk/gsk.h [new file with mode: 0644]
gsk/gskcairorenderer.c [new file with mode: 0644]
gsk/gskcairorendererprivate.h [new file with mode: 0644]
gsk/gskdebug.c [new file with mode: 0644]
gsk/gskdebugprivate.h [new file with mode: 0644]
gsk/gskenums.h [new file with mode: 0644]
gsk/gskenumtypes.c.template [new file with mode: 0644]
gsk/gskenumtypes.h.template [new file with mode: 0644]
gsk/gskglrenderer.c [new file with mode: 0644]
gsk/gskglrendererprivate.h [new file with mode: 0644]
gsk/gskprivate.c [new file with mode: 0644]
gsk/gskprivate.h [new file with mode: 0644]
gsk/gskrenderer.c [new file with mode: 0644]
gsk/gskrenderer.h [new file with mode: 0644]
gsk/gskrendererprivate.h [new file with mode: 0644]
gsk/gskrendernode.c [new file with mode: 0644]
gsk/gskrendernode.h [new file with mode: 0644]
gsk/gskrendernodeiter.c [new file with mode: 0644]
gsk/gskrendernodeiter.h [new file with mode: 0644]
gsk/gskrendernodeprivate.h [new file with mode: 0644]
gsk/gsktypes.h [new file with mode: 0644]
gsk/resources/glsl/base-renderer-fragment.glsl [new file with mode: 0644]
gsk/resources/glsl/base-renderer-vertex.glsl [new file with mode: 0644]
tests/Makefile.am
tests/testgskrenderer.c [new file with mode: 0644]